/**
* 2016年9月6日
* 生成随机密码，必包含大写小写数字-linx
* @param length，生成随机密码长度
* @param arr，生成密码字符串数组，默认大写，小写，数字
* @return 返回生成的密码字符串
*/
 function randPassword(length, passwordArray) {
    length = length || 6;
     // 密码串----默认 大写字母 小写字母 数字
   //  passwordArray = passwordArray || ['ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz', '1234567890'];
   passwordArray = passwordArray || ['abcdefghijklmnopqrstuvwxyz', '1234567890'];
    var password = '';
   // 随机生成开始字符串
    var startIndex = parseInt(Math.random() * (length));
     var randIndex = [];
    for (var i = 0; i < length; i++) {
        // 创建数组，用于取随机位置  [0,1,2,3,4,5,....]
       randIndex.push(i);
    }
    for (var i = 0; i < length; i++) {
        // 根据随机数组生成随机位置
       var r = parseInt(Math.random() * (randIndex.length));
        var num = randIndex[r] + startIndex;
         // 根据随机值取余数
       var randRemainder = num % passwordArray.length;
       // 当前密码串【大写字母，小写字母，数字等】
        var currentPassword = passwordArray[randRemainder];
        // 根据当前密码串长度取随机数
        var index = parseInt(Math.random() * (currentPassword.length));
        // 获取随机字符串
        var str = currentPassword.substr(index, 1);
      // 删除随机数组中已经使用的值
         randIndex.splice(r, 1);
        password += str;
     }
    return password;
 }

 module.exports = {
    randPassword: randPassword,
}